<?php

class BpagComponent extends Component{
	
	var $components = array('Session');
	
	var $numero_produtos = 0;
	
	public function gravaInformacoes($dados){
		$this->Session->write('Pagamento.valor_base', $dados['preco']);
		$soma = 0;
		$array = array();
		if(isset($dados['Cursos'])){
			foreach($dados['Cursos'] as $item){
				$array[] = array(
						'id' => $item['Curso']['id'],
						'descricao'=>'Curso: '.$item['Curso']['nome'],
						'valor'=>$item['Curso']['preco']
				);
				$soma += $item['Curso']['preco'];
			}
			$this->Session->write('Pagamento.Cursos', $array);
		}
		$this->Session->write('Pagamento.valor_cursos', $soma);
		$soma = 0;
		$array = array();
		if(isset($dados['Materiais'])){
			foreach($dados['Materiais'] as $item){
				$array[] = array(
						'id' => $item['Curso']['id'],
						'descricao'=>'Material: '.$item['Curso']['nome'],
						'valor'=>$item['Curso']['preco_material']
				);
				$soma += $item['Curso']['preco_material'];
			}
			$this->Session->write('Pagamento.Materiais', $array);
		}
		$this->Session->write('Pagamento.valor_materiais', $soma);
	}
	
	public function valor_base(){
		return array(
			"produto_codigo_1"=>0,
			"produto_descricao_1"=>__('Preço-Base Inscrição'),
			"produto_qtde_1"=>1,
			"produto_valor_1"=>$this->Session->read('Pagamento.valor_base')
		);
	}
	
	public function adicionaProduto($cod, $desc, $valor, $qtde = 1){
		$array = '';
		$this->numero_produtos++;
		$array .= '&produto_codigo_'.$this->numero_produtos.'='.urlencode($cod);
		$array .= '&produto_descricao_'.$this->numero_produtos.'='.urlencode($desc);
		$array .= '&produto_qtde_'.$this->numero_produtos.'='.urlencode($qtde);
		$array .= '&produto_valor_'.$this->numero_produtos.'='.urlencode($valor);
		return $array;
	}
	
	public function dadosPost(){
		//pr($this->Session->read());
		$info_basicas = "email_loja=".urlencode($this->Session->read('config.email_pagamento')).
				"&tipo_integracao=PAD".
				"&frete=0.00".
				"&meio_pagamento=58".
				"&email=".urlencode($this->Session->read('Auth.User.Usuario.email'));
		$produtos = $info_basicas;
		$valor_base = $this->adicionaProduto(0, __('Preço-Base Inscrição'), $this->Session->read('Pagamento.valor_base'));
		$produtos .= $valor_base;
		if($this->Session->check('Pagamento.Cursos')){
			foreach($this->Session->read('Pagamento.Cursos') as $item){
				$produtos .= $this->adicionaProduto($item['id'], $item['descricao'], $item['valor']);
			}
			foreach($this->Session->read('Pagamento.Materiais') as $item){
				$produtos .= $this->adicionaProduto($item['id'], $item['descricao'], $item['valor']);
			}
		}
		return ($produtos);
	}
	
	public function setup(){
		$email = $this->Session->read('config.email_pagamento');
		$token = $this->Session->read('config.token_pagamento');
		$this->numero_produtos = 0;
		phpinfo();
		ob_start();
		$ch = curl_init();
		$dados = $this->dadosPost();
		pr($dados);
		curl_setopt($ch, CURLOPT_URL, URL_CHECKOUT_BPAG);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch,CURLOPT_POSTFIELDS, $dados);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic".base64_encode($email. ":".$token)));
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		var_dump(curl_exec($ch));
	}
}
